/**
 * 
 * Author：liaozhanggen
 * Create Date：2017年2月18日
 * Version：v2.0
 */
package com.choosefine.it.cprivilege.dao;

import java.util.List;
import java.util.Map;

import com.choosefine.it.cprivilege.model.dto.AccountSearchDTO;
import com.choosefine.it.cprivilege.model.vo.AccountRoleVO;
import com.choosefine.it.cprivilege.model.vo.AccountVO;
import com.github.pagehelper.Page;

/**
 * 账户角色持久化层
 * Author：liaozhanggen
 * Create Date：2017年2月18日
 * Version：v2.0
 */
public interface AccountRoleMapper {


	/** 
	 *  账号查询列表分页
	 * @Author：liaozhanggen
	 * @Create Date：2017年2月18日
	 * @param：....
	 * @return：Page<AccountRoleVO>
	 */
	Page<AccountRoleVO> queryAccountRolePage(AccountSearchDTO accSearchDTO);

	/** 
	 * 添加账户与角色的关系 
	 * @Author：liaozhanggen
	 * @Create Date：2017年2月18日
	 * @param：....
	 * @return：void
	 */
	int insertAccountRole(Map<String, Object> param);

	/** 
	 * 删除指定的帐户拥有的角色
	 * @Author：liaozhanggen
	 * @Create Date：2017年2月18日
	 * @param：....
	 * @return：void
	 */
	int deleteAccountRoleByAcc(int id);

	/** 
	 * 删除之前角色与成员的关系
	 * 
	 * @Author：liaozhanggen
	 * @Create Date：2017年2月20日
	 * @param：....
	 * @return：int
	 */
	int deleteRoleAccountByRoleId(Map<String, Object> param);

	/** 
	 * 角色添加对应的成员管理
	 * 
	 * @Author：liaozhanggen
	 * @Create Date：2017年2月20日
	 * @param：....
	 * @return：int
	 */
	int insertRoleAccount(Map<String, Object> param);

	/** 
	 *  查询指定角色的对应成员-无分页
	 *  
	 * @Author：liaozhanggen
	 * @Create Date：2017年2月20日
	 * @param：....
	 * @return：List<AccountVO>
	 */
	List<AccountVO> queryRoleAccount(int roleId);

	/** 
	 * 判断角色与帐户 是否存在关系
	 * @Author：liaozhanggen
	 * @Create Date：2017年2月20日
	 * @param：....
	 * @return：int
	 */
	int validRoleAccIsExists(int roleId);
}
